/**
 * fileName:  FruitInfoStore.java
 * author:  Lei
 * Company:  Cloudland Studio
 * Createdate:  2014-6-24 下午10:30:12
 *
 * All rights Reserved, Designed By cloudland Copyright(C) 2010-2011
 *   
 * Modification  History:
 *     Date           Author        Version        
 * -------------------------------------------
 * 2014-6-24          Lei            1.0        
 *
 * Why & What is modified:
 * 1.0: 文件创建
 */
package org.cloudland.commercial.masterdata.handler;

import org.cloudland.commercial.masterdata.bean.FruitInfo;
import org.cloudland.commercial.masterdata.bean.FruitNutrition;
import org.cloudland.commercial.masterdata.bean.FruitStructure;
import org.cloudland.commercial.masterdata.bean.NutritionBasic;
import org.cloudland.commercial.masterdata.store.PageResult;

 /**
 * <pre> 
 * 水果信息仓储
 * </pre>
 * @ClassName  FruitInfoStore
 * @author  Lei
 * @version  %I%, %G%
 * @see  
 * @since   JDK1.6
 *
 */
public interface FruitStore {
	
	/**
	 * <pre>
	 * 创建水果信息
	 * </pre>
	 *
	 * @return   
	 */
	FruitInfo createFruitInfo();
	
	/**
	 * <pre>
	 * 创建水果结构信息
	 * </pre>
	 *
	 * @return   
	 */
	FruitStructure createFruitStructureInfo();
	
	/**
	 * <pre>
	 * 根据结构编号查询水果已有结构信息
	 * </pre>
	 *
	 * @param structureId
	 * @return   
	 */
	FruitStructure findFruitStructureInfoById(String structureId);
	
	/**
	 * <pre>
	 * 传入营养信息编号，创建水果营养信息接口
	 * </pre>
	 *
	 * @param nutritionId
	 * @return   
	 */
	FruitNutrition createFruitNutritionInfo(String nutritionId);
	
	/**
	 * <pre>
	 * 传入营养信息，创建水果营养信息接口
	 * </pre>
	 *
	 * @param nutritionInfo
	 * @return   
	 */
	FruitNutrition createFruitNutritionInfo(NutritionBasic nutritionInfo);
	
	/**
	 * <pre>
	 * TODO 请充分描述该方法提供的功能，及如何使用。
	 * </pre>
	 *
	 * @param fruitId
	 * @return   
	 */
	FruitInfo findFruitInfoById(String fruitId);
	
	/**
	 * <pre>
	 * 分页查询水果信息
	 * </pre>
	 *
	 * @param startNo
	 * @param pageSize
	 * @return   
	 */
	PageResult<FruitInfo> findPageFruitInfo(Integer startNo, Integer pageSize);
	
	/**
	 * <pre>
	 * TODO 请充分描述该方法提供的功能，及如何使用。
	 * </pre>
	 *
	 * @param type
	 * @param str
	 * @param startNo
	 * @param pageSize
	 * @return   
	 */
	PageResult<FruitInfo> searchPageFruitInfo(String type,String str,Integer startNo, Integer pageSize);
	
	/**
	 * <pre>
	 * 根据水果编号移除水果信息
	 * </pre>
	 *
	 * @param fruitId   
	 */
	void remove(String fruitId);

	

}
